Generally described, computing devices utilize a communication network, or a series of communication networks, to exchange data. Companies and organizations operate computer networks that interconnect a number of computing devices to support operations or provide services to third parties. The computing systems can be located in a single geographic location or located in multiple, distinct geographic locations (e.g., interconnected via private or public communication networks). Specifically, data centers or data processing centers, herein generally referred to as a “data center,” may include a number of interconnected computing systems to provide computing resources to users of the data center. The data centers may be private data centers operated on behalf of an organization or public data centers operated on behalf, or for the benefit of, the general public.
To facilitate increased utilization of data center resources, virtualization technologies may allow a single physical computing device to host one or more instances of virtual machines that appear and operate as independent computing devices to users of a data center. With virtualization, the single physical computing device can create, maintain, delete, or otherwise manage virtual machines in a dynamic matter. In turn, users can request computer resources from a data center, including single computing devices or a configuration of networked computing devices, and be provided with varying numbers of virtual machine resources.
In embodiments in which a user (e.g., a customer of the service provider) utilizes a number of networked computing devices, such as a hosted virtual machine network, each networked computing device is typically associated with an externally accessible network address. For example, each networked computing device can be associated with an Internet Protocol (“IP”) address conforming to the Internet Protocol version 4 (“IPv4”) communication protocol. However, a service provider may often be limited in terms of the number of externally accessible network addresses that are available for the networked computing devices. Accordingly, service providers can implement various types of network address translation techniques, generally referred to as Network Address Translation (“NAT”).
In a typically NAT implementation, a service provider can assign each computing device in a hosted network internal, private network addresses that facilitate communication within the hosted network. The service provider then implements a centralized NAT computing device that can correlates a finite set of external network addresses to each of the computing devices in the hosted network. The centralized NAT computing device operates as a gateway translating communications between the internal, private network address of the computing devices in the hosted network and the finite set of externally accessible network addresses. However, centralized NAT devices can be a centralized point of failure for a hosted network and can have difficulty managing large number of communication connections typically associated in larger hosted networks.